/**
  @(#)$Id: AL_Log.h 69 2013-10-08 03:03:33Z xiaoting $
  @brief    	Declaration file of class AL_Log.

  @author		$Author: xiaoting $
  @date			$Date: 2013-10-08 11:03:33 +0800 (周二, 08 十月 2013) $
  @version		$Revision: 69 $
  @url			$URL: https://svn.code.sf.net/p/xiaoting/game/trunk/MyProject/AL_StandardLib/groupinc/AL_Log.h $
  @header		$Header: https://svn.code.sf.net/p/xiaoting/game/trunk/MyProject/AL_StandardLib/groupinc/AL_Log.h 69 2013-10-08 03:03:33Z xiaoting $
 */
#ifndef CXX_AL_LOG_H
#define CXX_AL_LOG_H

///////////////////////////////////////////////////////////////////////////
//			AL_Log
///////////////////////////////////////////////////////////////////////////
class AL_Log
{
public:
	enum AL_LogKind;
	/** 
	* Output log information 
	* 
	* I want to output the log information. 
	* 
	* @ Param DWORD dwLogKind: <br> information type [IN] log 
	* @ Param const CHAR * pkszInfoFormat: (200 characters including format control string, alphanumeric characters maximum (NULL)) info [IN] log 
	* @ Param ...: arguments [IN] option 
	* @ Return None 
	* @ Par log on information type: 
	* For information on log types that can be set to the type of the argument, <br> 
	* Please refer to the type of log information AL_LogPublicDef.h. <br> 
	* If you are adding a new type of log information, you must apply. <br> 
	* @ Attention 
	* A string that can be specified in the log information is up to 200 alphanumeric characters, including the NULL. <br> 
	* If more than 200 characters in the log information is not part of the output later. <br> 
	* I do not need to add line breaks because the log information internally. <br> 
	* @ Code 
	* / / Output log information (vehicle information) 
	* AL_Log :: Output (AL_LOG_KIND_LOC, "[% s] X [% 05d] Y [% 05d]", "LOC", dwXPos, dwYPos); 
	* 
	* Sample output) 
	* [2005/04/04 08:20:00.000] 00003: LOC: [LOC] X [00003] Y [00006] 
	* @ Endcode 
	*/
	static VOID Output(AL_LogKind eLogKind, const NCHAR *pkszInfoFormat, ...);

protected:
private:
	/**
	* Construction
	*
	* @param
	* @return
	*/
	AL_Log();

	/**
	* Destruction
	*
	* @param
	* @return
	*/
	~AL_Log(VOID);
	
	/**
	*Copy Construct
	*
	* @param const AL_Log& cAL_Log
	* @return
	*/
	AL_Log(const AL_Log& cAL_Log);

	/**
	*Assignment
	*
	* @param const AL_Log& cAL_Log
	* @return AL_Log&
	*/
	AL_Log &operator =(const AL_Log& cAL_Log);


public:
	enum AL_LogKind
	{
		AL_LOG_KIND_ROLE = 0,
		AL_LOG_KIND_DATABASE,
	};
protected:
private: 
};

#endif // CXX_AL_LOG_H
/* EOF */
